In computing, context awareness is related to the idea that the computers can be programmed to be aware of and react to their environment, or the environment of their users. Computing devices may have information about the circumstances under which they are able to operate and based on some rules, for example, can react accordingly. Context-aware devices may also try to make assumptions about the user's current situation. A context can be defined as any information that can be used to characterize the situation of an entity. Context-aware systems concern acquisition of a context (e.g., using sensors to perceive a situation), the abstraction and understanding of a context (e.g., matching a perceived sensory stimulus to a context), and application behavior based on the recognized context (e.g., triggering actions based on context).
Business applications today increasingly demand a sophisticated event framework to allow data being exchanged in real-time and asynchronous style. Even though many popular messaging framework implementations (such as standard JMS, ActiveMQ, IBM MQ, and so on) exist and message-oriented integration patterns (such as SOA, ESB, OSGI, etc.) are widely applied in practice, there is still a lack of effective models that allow events to be more consumable for end users. Many messages are effective for machine consumption but are difficult for a non-technical person to comprehend. Most events are generated by machines based on some business logic. Typically, events are produced close to source codes, but consumed close to human beings. This leads to gaps between event generation and consumption. Further, information carried by events is normally concise and abstract. It requires more information (i.e., context) to understand what has actually happened, especially when users read them in completely different setups (e.g., time, domain). Events are normally delivered to users and considered as an end node of the process. The next natural step is for users to investigate events and take actions. However, systems today do not provide users any information or navigation to start the investigations or take actions. The user has to depend on previous knowledge of the system.